package com.ruoyi.web.petmall.pethome.controller;

import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.web.petmall.entity.OrderEntity;
import com.ruoyi.web.petmall.pethome.service.HomeOrderService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.apache.poi.ss.formula.functions.T;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

/**
 * 前台订单控制器
 *
 * @author ruoyi
 */
@RequestMapping("/petHome/order")
@RestController
@Api(tags = "前台——订单")
public class HomeOrderController extends BaseController {

    /**
     * 自动注入订单服务类
     */
    @Autowired
    private HomeOrderService homeOrderService;

    /**
     * 查询订单信息
     *
     * @param orderEntity 订单实体类，包含查询条件
     * @return 返回查询结果的分页信息
     */
    @ApiOperation("订单信息")
    @GetMapping("/getOrderInfo")
    public TableDataInfo getOrderInfo(OrderEntity orderEntity) {
        List<OrderEntity> list = homeOrderService.getOrderInfo(orderEntity);
        return getDataTable(list);
    }

    /**
     * 修改订单信息
     *
     * @param orderEntity 需要修改的订单实体类，包含所有订单字段
     * @return 返回操作结果，成功返回ok，失败返回error
     */
    @ApiOperation("修改订单信息")
    @PostMapping("/updateOrder")
    public R<T> updateOrder(@RequestBody OrderEntity orderEntity) {
        homeOrderService.updateOrderList(orderEntity);
        return R.ok();
    }

    /**
     * 删除订单
     *
     * @param Id 需要删除的订单ID
     * @return 返回操作结果，成功返回true，失败返回false
     */
    //TODO  /delectOrder -> /deleteOrder
    @ApiOperation("删除订单")
    @DeleteMapping("/deleteOrder")
    public AjaxResult deleteOrder(Long Id) {
        return toAjax(homeOrderService.deleteOrder(Id));
    }

}
